package com.yuju.login.service.impl;

import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.yuju.common.core.dao.IBaseDao;
import com.yuju.common.core.service.AbstractBaseService;
import com.yuju.login.dao.IRoleMenuDao;
import com.yuju.login.dao.entity.RoleMenu;
import com.yuju.login.model.RoleMenuModel;
import com.yuju.login.service.IRoleMenuService;
import com.yuju.util.Utils;
/**
 * 
 * 类名：RoleMenuServiceImpl  <br />
 *
 * 功能：
 *
 * @author : zhousc <br />
 * @Date : 2017年11月27日 上午10:34:24  <br />
 * @version : 1.1 <br />
 */
@Service
public class RoleMenuServiceImpl extends AbstractBaseService<RoleMenuModel, RoleMenu, String> implements IRoleMenuService{

	@Autowired
	private IRoleMenuDao roleMenuDao;
	
	@Override
	public IBaseDao<RoleMenuModel, RoleMenu, String> getDao() {
		// TODO Auto-generated method stub
		return roleMenuDao;
	}

	/**
	 * 
	 * 功能: <br/>
	 * 
	 * 重写：zhousc <br/>
	 * 
	 * @Date ：2017年12月4日 上午10:52:31<br/>
	 * 
	 * @param roleMenuModel
	 * @return <br/>
	 * @see com.yuju.common.core.service.AbstractBaseService#save(java.lang.Object)
	 */
	@Override
	public int save(RoleMenuModel roleMenuModel){
		for(int i = 0; i < roleMenuModel.getMenuIds().length; i++){
			roleMenuModel.setId(Utils.getUUID());
			roleMenuModel.setMenuId(roleMenuModel.getMenuIds()[i]);
			roleMenuModel.setGmtCreate(new Date());
			roleMenuModel.setGmtModified(new Date());
			this.getDao().saveSelective(roleMenuModel);
		}
		return 1;
	}
	/**
	 * 
	 * 功能: <br/>
	 * 
	 * 重写：zhousc <br/>
	 * 
	 * @Date ：2017年12月4日 上午10:52:33<br/>
	 * 
	 * @param roleMenuModel
	 * @return <br/>
	 * @see com.yuju.common.core.service.AbstractBaseService#updateSelective(java.lang.Object)
	 */
	@Override
	public int updateSelective(RoleMenuModel roleMenuModel){
		//删除角色的菜单权限，重新添加
		this.getDao().del(roleMenuModel.getRoleId());
		
		for(int i = 0; i < roleMenuModel.getMenuIds().length; i++){
			roleMenuModel.setId(Utils.getUUID());
			roleMenuModel.setMenuId(roleMenuModel.getMenuIds()[i]);
			roleMenuModel.setGmtModified(new Date());
			this.getDao().saveSelective(roleMenuModel);
		}
		return 1;
	}
	
	
}
